package com.ruoyi.withdraw.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 提现申请对象 wdmd_distribution_withdraw
 * 
 * @author ruoyi
 * @date 2025-10-11
 */
public class DistributionWithdraw extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 提现ID */
    private Long withdrawId;

    /** 提现单号(WD开头) */
    @Excel(name = "提现单号(WD开头)")
    private String withdrawCode;

    /** 分销员ID */
    @Excel(name = "分销员ID")
    private Long distributorId;

    /** 申请金额 */
    @Excel(name = "申请金额")
    private BigDecimal amount;

    /** 实际到账金额 */
    @Excel(name = "实际到账金额")
    private BigDecimal actualAmount;

    /** 手续费 */
    @Excel(name = "手续费")
    private BigDecimal fee;

    /** 支付方式：1-微信 0-支付宝 3-银行卡 */
    @Excel(name = "支付方式：1-微信 0-支付宝 3-银行卡")
    private String paymentType;

    /** 收款账号 */
    @Excel(name = "收款账号")
    private String paymentAccount;

    /** 收款人姓名 */
    @Excel(name = "收款人姓名")
    private String paymentName;

    /** 状态：0-待审核 1-审核通过 2-打款中 3-已到账 4-审核拒绝 5-已取消 */
    @Excel(name = "状态：0-待审核 1-审核通过 2-打款中 3-已到账 4-审核拒绝 5-已取消")
    private String auditStatus;

    /** 审核人ID */
    @Excel(name = "审核人ID")
    private Long auditorId;

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date auditTime;

    /** 审核备注 */
    @Excel(name = "审核备注")
    private String auditRemark;

    /** 打款时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "打款时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date paymentTime;

    /** 状态（0=上架 1=下架） */
    @Excel(name = "状态", readConverterExp = "0==上架,1==下架")
    private String status;

    /** 删除标志（0存在 2删除） */
    private String delFlag;

    /** 版本号（乐观锁） */
    @Excel(name = "版本号", readConverterExp = "乐=观锁")
    private Long version;

    public void setWithdrawId(Long withdrawId) 
    {
        this.withdrawId = withdrawId;
    }

    public Long getWithdrawId() 
    {
        return withdrawId;
    }

    public void setWithdrawCode(String withdrawCode) 
    {
        this.withdrawCode = withdrawCode;
    }

    public String getWithdrawCode() 
    {
        return withdrawCode;
    }

    public void setDistributorId(Long distributorId) 
    {
        this.distributorId = distributorId;
    }

    public Long getDistributorId() 
    {
        return distributorId;
    }

    public void setAmount(BigDecimal amount) 
    {
        this.amount = amount;
    }

    public BigDecimal getAmount() 
    {
        return amount;
    }

    public void setActualAmount(BigDecimal actualAmount) 
    {
        this.actualAmount = actualAmount;
    }

    public BigDecimal getActualAmount() 
    {
        return actualAmount;
    }

    public void setFee(BigDecimal fee) 
    {
        this.fee = fee;
    }

    public BigDecimal getFee() 
    {
        return fee;
    }

    public void setPaymentType(String paymentType) 
    {
        this.paymentType = paymentType;
    }

    public String getPaymentType() 
    {
        return paymentType;
    }

    public void setPaymentAccount(String paymentAccount) 
    {
        this.paymentAccount = paymentAccount;
    }

    public String getPaymentAccount() 
    {
        return paymentAccount;
    }

    public void setPaymentName(String paymentName) 
    {
        this.paymentName = paymentName;
    }

    public String getPaymentName() 
    {
        return paymentName;
    }

    public void setAuditStatus(String auditStatus) 
    {
        this.auditStatus = auditStatus;
    }

    public String getAuditStatus() 
    {
        return auditStatus;
    }

    public void setAuditorId(Long auditorId) 
    {
        this.auditorId = auditorId;
    }

    public Long getAuditorId() 
    {
        return auditorId;
    }

    public void setAuditTime(Date auditTime) 
    {
        this.auditTime = auditTime;
    }

    public Date getAuditTime() 
    {
        return auditTime;
    }

    public void setAuditRemark(String auditRemark) 
    {
        this.auditRemark = auditRemark;
    }

    public String getAuditRemark() 
    {
        return auditRemark;
    }

    public void setPaymentTime(Date paymentTime) 
    {
        this.paymentTime = paymentTime;
    }

    public Date getPaymentTime() 
    {
        return paymentTime;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    public void setVersion(Long version) 
    {
        this.version = version;
    }

    public Long getVersion() 
    {
        return version;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("withdrawId", getWithdrawId())
            .append("withdrawCode", getWithdrawCode())
            .append("distributorId", getDistributorId())
            .append("amount", getAmount())
            .append("actualAmount", getActualAmount())
            .append("fee", getFee())
            .append("paymentType", getPaymentType())
            .append("paymentAccount", getPaymentAccount())
            .append("paymentName", getPaymentName())
            .append("auditStatus", getAuditStatus())
            .append("auditorId", getAuditorId())
            .append("auditTime", getAuditTime())
            .append("auditRemark", getAuditRemark())
            .append("paymentTime", getPaymentTime())
            .append("status", getStatus())
            .append("delFlag", getDelFlag())
            .append("version", getVersion())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("createBy", getCreateBy())
            .append("updateBy", getUpdateBy())
            .append("remark", getRemark())
            .toString();
    }
}
